#include<iostream>
using namespace std;
struct OP
{
    int ball,V;
}F[105];
int ball,V,n,g[1005][505];
int main()
{
    scanf("%d%d%d",&ball,&V,&n);
    for(int i=1;i<=n;i++)
        scanf("%d%d",&F[i].ball,&F[i].V);
    for(int i=1;i<=n;i++){
        for(int j=ball;j>=0;j--){
            for(int v=V;v>=0;v--){
                if(j>=F[i].ball&&v>=F[i].V){
                    g[j][v]=max(g[j][v],g[j-F[i].ball][v-F[i].V]+1);
                }
            }
        }
    }
    printf("%d ",g[ball][V]);
    int ans=0;
    for(int i=V-1;i>=0;i--)
        if(g[ball][i]==g[ball][V])
            ans=i;
        else
            break;
    printf("%d\n",V-ans);
    return 0;
}